<?php
// 水印的作用： 版权保护  宣传作用
// 在用户的图片上 印上公司的logo等


water('2b.png','logo.png',5,50);
/*生成水印
*@param1 dest String 用户图片
*@param2 logo String 水印
*@param3 position int 1->左上角 2->左下角 3->右上角 4->右下角 5->中间
*@param4 op int 透明度 0-100
 */
function water($dest,$logo,$pos,$op=60) {
 
    // 将已有的图片读取到画布中
    $img_dest = imgToCanvas($dest);
    $img_logo = imgToCanvas($logo);

    // 获取两张图片的宽高
    $dest_info = getimagesize($dest);
    $logo_info = getimagesize($logo);
    $dest_width = $dest_info[0];
    $dest_height = $dest_info[1];
    $logo_width = $logo_info[0];
    $logo_height = $logo_info[1];

    // 制作水印 可以从logo中截取一部分 类似精灵图
    // 参数 1.目标图片  2.logo  3&4.目标图片的某个点  5&6.logo上的某个点
    //      7&8.截取logo部分的宽高 9.表示透明度
    //      从s_x,s_y为起点复制s_w和s_h作为水印
    //根据pos决定logo在dest的位置
    $d_x = 0;
    $d_y = 0;
    switch ($pos) {
     	case 1:
     	    $d_x = 0;
     	    $d_y = 0;
     		break;
     	case 2:
     	    $d_x = 0;
     	    $d_y = $dest_height-$logo_height;
     		break;
     	case 3:
     	    $d_x = $dest_width-$logo_width;
     	    $d_y = 0;
     		break;
     	case 4:
     	    $d_x = $dest_width-$logo_width;
     	    $d_y = $dest_height-$logo_heigh;
     		break;
     	case 5:
     	    $d_x = 1/2*($dest_width-$logo_width);
     	    $d_y = 1/2*($dest_height-$logo_height);
     		break;
     } 
    imagecopymerge($img_dest, $img_logo, $d_x, $d_y, 0, 0,$logo_width, $logo_height, $op);

    // 输出
    header('Content-type:image/jpeg');
    imagejpeg($img_dest);
}
/*图片变成画布
*@param1 图片的路径
 */
function imgToCanvas($picture){
    $picture_info = getimagesize($picture);
    // echo '<pre>';
    // print_r($dest_info);
    switch ($picture_info['mime']) {
	    case 'image/jpeg':
	    	$img_picture = imagecreatefromjpeg($picture);
	    	break;
        case 'image/png':
	    	$img_picture = imagecreatefrompng($picture);
	    	break;
	    case 'image/gif':
	    	$img_picture = imagecreatefromgif($picture);
	        break;
    }
    return $img_picture;
}
?>